package cn.topevery.garden.entity.dto;

import cn.topevery.garden.entity.po.GreFile;
import com.alibaba.fastjson.annotation.JSONField;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
import org.locationtech.jts.geom.Geometry;

import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;

/**
 * 古树名木表 DTO
 *
 * @author code-generate
 * @date 2022-03-30
 */
@Data
@Accessors(chain = true)
@ApiModel(value = "GreTreeFamousDTO", description = "古树名木表 DTO")
public class GreTreeFamousDTO implements Serializable{
    /**
     * 自增id
     */
    private Integer id;

        /** UUID */
    @ApiModelProperty(value = "UUID")
    private String treeId;

    /** 编号 */
    @ApiModelProperty(value = "编号")
    private String code;

    /** 中文名 */
    @ApiModelProperty(value = "中文名")
    private String name;

    /** 拉丁名 */
    @ApiModelProperty(value = "拉丁名")
    private String nameLatin;

    /** 科名 */
    @ApiModelProperty(value = "科名")
    private String treeKind;

    /** 属名 */
    @ApiModelProperty(value = "属名")
    private String treeAttr;

    /** 街道Id */
    @ApiModelProperty(value = "街道Id")
    private String streetId;

    /** 街道-行政村 */
    @ApiModelProperty(value = "街道-行政村")
    private String streetName;

    /** 区域id */
    @ApiModelProperty(value = "区域id")
    private String distractId;

    /** 区域名称-行政镇 */
    @ApiModelProperty(value = "区域名称-行政镇")
    private String distractName;

    /** 社区Id */
    @ApiModelProperty(value = "社区Id")
    private String communityId;

    /** 社区-自然村 */
    @ApiModelProperty(value = "社区-自然村")
    private String communityName;

    /** 坐标X */
    @ApiModelProperty(value = "坐标X")
    private Double lng;

    /** 坐标Y */
    @ApiModelProperty(value = "坐标Y")
    private Double lat;

    /** 国家2000坐标X */
    @ApiModelProperty(value = "国家2000坐标X")
    private Double lng2000;

    /** 国家2000坐标Y */
    @ApiModelProperty(value = "国家2000坐标Y")
    private Double lat2000;

    /** 生长场所 */
    @ApiModelProperty(value = "生长场所")
    private String growPlace;

    /** 小地名 */
    @ApiModelProperty(value = "小地名")
    private String address;

    /** 小地名2 */
    @ApiModelProperty(value = "小地名2")
    private String addressTwo;

    /** 权属 */
    @ApiModelProperty(value = "权属")
    private String power;

    /** 管理单位 */
    @ApiModelProperty(value = "管理单位")
    private String manage;

    /** 管理单位Id */
    @ApiModelProperty(value = "管理单位Id")
    private String manageId;

    /** 养护单位ID */
    @ApiModelProperty(value = "养护单位ID")
    private String maintainDeptId;

    /** 养护单位 */
    @ApiModelProperty(value = "养护单位")
    private String maintainDept;

    /** 是否挂牌 0 挂 1 不挂 */
    @ApiModelProperty(value = "是否挂牌 0 挂 1 不挂")
    private Integer isGp;

    /** 物种起源 */
    @ApiModelProperty(value = "物种起源")
    private String source;

    /** 树高 */
    @ApiModelProperty(value = "树高")
    private Double treeHeight;

    /** 树龄 */
    @ApiModelProperty(value = "树龄")
    private Integer treeOld;

    /** 保护等级 1：一级 2： 二级 3： 三级 */
    @ApiModelProperty(value = "保护等级 1：一级 2： 二级 3： 三级")
    private Integer protectLevel;

    /** 保护等级 */
    @ApiModelProperty(value = "保护等级")
    private String protectLevelName;

    /** 胸围 */
    @ApiModelProperty(value = "胸围")
    private Double treeWidth;

    /** 地围 */
    @ApiModelProperty(value = "地围")
    private Double dewei;

    /** 树形 */
    @ApiModelProperty(value = "树形")
    private String treeState;

    /** 东西冠幅 */
    @ApiModelProperty(value = "东西冠幅")
    private Double eastWestCrown;

    /** 南北冠幅 */
    @ApiModelProperty(value = "南北冠幅")
    private Double northSouthCrown;

    /** 平均冠幅 */
    @ApiModelProperty(value = "平均冠幅")
    private Double avgCrown;

    /** 海拔 */
    @ApiModelProperty(value = "海拔")
    private Double altitude;

    /** 坡向 */
    @ApiModelProperty(value = "坡向")
    private String aspect;

    /** 坡度 */
    @ApiModelProperty(value = "坡度")
    private String slope;

    /** 坡位 */
    @ApiModelProperty(value = "坡位")
    private String status;

    /** 土壤类型 */
    @ApiModelProperty(value = "土壤类型")
    private String soil;

    /** 紧密度 */
    @ApiModelProperty(value = "紧密度")
    private String tightness;

    /** 生长势 */
    @ApiModelProperty(value = "生长势")
    private String growType;

    /** 生长环境 */
    @ApiModelProperty(value = "生长环境")
    private String growAmbient;

    /** 栽植人 */
    @ApiModelProperty(value = "栽植人")
    private String plantUser;

    /** 栽植时间 */
    @ApiModelProperty(value = "栽植时间")
    @JSONField(format="yyyy-MM-dd HH:mm:ss")
    private LocalDateTime plantDate;

    /** 古树历史 */
    @ApiModelProperty(value = "古树历史")
    private String history;

    /** 鉴定记载 */
    @ApiModelProperty(value = "鉴定记载")
    private String record;

    /** 树木奇特性状描述或生长环境描述 */
    @ApiModelProperty(value = "树木奇特性状描述或生长环境描述")
    private String longDesc;

    /** 俗名 */
    @ApiModelProperty(value = "俗名")
    private String nameComm;

    /** 特点 */
    @ApiModelProperty(value = "特点")
    private String treeTrait;

    /** 调查号 */
    @ApiModelProperty(value = "调查号")
    private String examineCode;

    /** 名木类别 1 古树，2名木 */
    @ApiModelProperty(value = "名木类别 1 古树，2名木")
    private Integer famousTypeId;

    /** 名木类别 */
    @ApiModelProperty(value = "名木类别")
    private String famousTypeName;

    /** 联系人 */
    @ApiModelProperty(value = "联系人")
    private String maintainUser;

    /** 群落编号 */
    @ApiModelProperty(value = "群落编号")
    private String communityCode;

    /** 是否防护 0：false 1：true */
    @ApiModelProperty(value = "是否防护 0：false 1：true")
    private Boolean isProtect;

    /** 描述 */
    @ApiModelProperty(value = "描述")
    private String desc;

    /** 数据发布 0 false 1 ture */
    @ApiModelProperty(value = "数据发布 0 false 1 ture")
    private Boolean dataPublic;

    /** 年份/用来判断树龄 */
    @ApiModelProperty(value = "年份/用来判断树龄")
    private Integer year;

    /** 台账编号 */
    @ApiModelProperty(value = "台账编号")
    private String codeTwo;

    /** 审核状态 */
    @ApiModelProperty(value = "审核状态")
    private Boolean state;

    /** 栽种单位 */
    @ApiModelProperty(value = "栽种单位")
    private String plantUnits;

    /** 图层名称 */
    @ApiModelProperty(value = "图层名称")
    private String objName;

    /** 普查图片地址 */
    @ApiModelProperty(value = "普查图片地址")
    private String fileUrl;

    /** 范围 */
    @ApiModelProperty(value = "范围")
    private Geometry mapRanges;

    /** 计算空间数据 */
    @ApiModelProperty(value = "计算空间数据")
    private String geoWkt;

    private List<GreFile> fileList;

}
